学习日记:Unity单例类MonoSingleton | 您所在的位置:网站首页 › brand new 意思 › 学习日记:Unity单例类MonoSingleton |
仅为自己的理解,有问题请见谅。 这大概是最简单易懂的单例类了吧单例是一个概念,意思就是一个类只存在一个的实例,并且对于所有其他类都提供了进入的方式,在游戏开发中全局管理器、缓冲池等都是这类东西, 也就是在程序里只需要一个,其他对象都可以无障碍访问到的对象,就可以用单例来做。 单例可以单独来做,但是声明一个单例类可以方便我们创建多个单例。 首先是最难懂的类声明: 首先是声明了一个类MonoSingleton,这里面的是C#的泛型 :MonoBehavivor是父类,这个不用多说 where T:是C#的泛型约束,意思就是T指定的类型不能超过这个约束范围,后面跟某个类意思就是T只能是该类或者该类的衍生类,跟new()意思是T代表的类必须具有无参数的公共构造函数。 综合来说就是,这个抽象类指定了一个泛型,这个泛型必须有个无参公共构造,而且必须是本类的子类。 然后是类体:
首先是有个静态变量instance,这个静态变量指向自身生成的实例(下面会说),静态就代表着其他类可以通过类名直接访问它了。 然后是一个get;set,这里只写了get,就是在访问instance时如果没有自身的话就创建一个自身(有点绕,我也不知道该怎么说)简单来说这个可以保证程序中有一个该实例。 这就是单例类了,使用起来很简单: 使用单例类 写个类继承单例类,泛型改成该类,就行了,这个类就变成了一个单例。 以下是单例的使用:
就可以直接调用方法和变量。 图来源自朋友的代码,也有我写的一部分。 |
CopyRight 2018-2019 实验室设备网 版权所有 |